#pragma once
#include "Defines.h"
#include <string>
#include <vector>
#include <map>
#include <time.h>
#include <libxml/tree.h>

typedef std::map<std::string, std::string> VariablesMap;
typedef std::pair<std::string, std::string> VariablesMapPair;
typedef VariablesMap::const_iterator VariablesMapIter;

void GetContentCharsetFromResponse(const std::string& szResponse, std::string& szCharset);
void GetContentTypeFromResponse(const std::string& szResponse, std::string& szContentType, unsigned int& uiContentType);
void StringToWords(const std::string& szString, const char& separastor, std::vector<std::string>& words);
bool IsStringEmpty(const xmlChar* szString);
bool IsStringDigits(const xmlChar* szString);
bool IsBinaryStream(const std::string& szStream);
bool IsURLValid(const std::string& szUrl);
void GetGMTDateTime(std::string& szDateTime);
void GetDomainNameFormURL(const std::string& szUrl, std::string& szDomainName);
void ReplaceVariables(std::string& szTemplateText, const VariablesMap& variables);
void ReplaceTemplates(std::string& szTemplateText);
void ConvertTemplateToText(std::string& szTemplateText);

